package com.whmskj.xjlhsc.mobie.Scheduling.Dto;

import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @Author: Sakura
 * @Date: 2025/8/30 10:39
 * @Version: v1.0.0
 * @Description: TODO
 **/
@Data
@TableName(value = "recordsOfEmployeeAwardsAndSancti",autoResultMap = true)
@Schema(name = "奖惩记录请求响应参数",description = "奖惩记录请求响应参数")
public class RecordsOfEmployeeAwardsAndSancti {

    @TableId(type = IdType.AUTO)
    private Integer id;

    @Schema(description = "员工id")
    private Integer empId;

    @Schema(description = "性别")
    private String gender;

    @Schema(description = "员工照片")
    private String empPicture;

    @Schema(description = "单据编号")
    private String documentNumber;

    @Schema(description = "日期时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date dateTime;

    @Schema(description = "员工名字")
    private String name;

    @Schema(description = "员工工号")
    private String empCode;

    @Schema(description = "员工手机号")
    private String empPhone;

    @Schema(description = "车间")
    private String workshop;

    @Schema(description = "工种")
    private String fe97;

    @Schema(description = "工序")
    private String process;

    @Schema(description = "审核人名字")
    private String secondLevelReviewerName;

    @Schema(description = "班次")
    private String fa90;

    @Schema(description = "班组")
    private String classes;

    @Schema(description = "奖/罚原因")
    private String f3e2;

    @Schema(description = "金额(大写)")
    private String amountTotal1;

    @Schema(description = "金额(小写)")
    private BigDecimal f28c;

   @TableField(exist = false)
    private List<String> livePictures;

    @Schema(description = "现场图片")
    @TableField(typeHandler = JacksonTypeHandler.class,value = "livePictures")
    private String livePicturesDto;

    @Schema(description = "领导签名")
    private String leadershipSignature;

    @Schema(description = "备注说明")
    private String f90b;

    @Schema(description = "一级审核人")
    private String firstLevelReviewer;

    @Schema(description = "二级审核人")
    private String secondLevelReviewer;

    @Schema(description = "状态")
    private String status;

    @Schema(description = "修改时间")
    private String modified;

    @Schema(description = "提交时间")
    private String timeOfSubmission;

    @Schema(description = "审核时间")
    private String approvalTime;

    @Schema(description = "奖惩类型")
    private String typeOfAward;

    @Schema(description = "版本号")
    private Integer version = 1;

    @Schema(description = "是否能审核")
    @TableField(exist = false)
    private Boolean canApprove;

    @Schema(description = "原始记录ID")
    private Integer originalId;

    @Schema(description = "是否复核")
    private String reviewStatus;
}
